%n 1000
%a 5000
%e 10000
%p 20000
%{
int Silbenanzahl = 0;
int Vokal = 0;
%}
Vokalbuchstabe a|e|i|o|u|y|\"a|\"o|\"u|A|E|I|O|U|Y|\"A|\"O|\"U
Suffix  bar|chen|haft|heit|lein|ling|lings|los|nis|sal|sam|schaft|sel|tum|w\"arts
Suffix_mit_h aft|eit|aftig|aftigkeit
stimmloser_Konsonant p|t|k|f|s|sch|st|sp|ch
Kons_buchst b|c|d|f|g|h|j|k|l|m|n|p|q|r|s|t|v|w|x|z|\"s|B|C|D|F|G|H|J|K|L|M|N|P|Q|R|S|T|V|W|X|Z
Buchstabenfolge bl|br|cl|cr|dl|dr|fl|fr|gl|gr|kl|kr|phl|phr|pl|pr|qu|thl|thr|tl|tl
Satzzeichen \.|\!|\?|\,|\:|\;|-
WhiteSpace [ \t\n]
Trennzeichen {Satzzeichen}|{WhiteSpace}
%%


:					{printf(" :");
				       }

{Trennzeichen}+				{ECHO;
					 Silbenanzahl = 0;
					}


\<[^>]*\>				{ECHO;
					}	/* <..> */


\[[^\]\[]*(\[[^\]\[]*\][^\]\[]*)*\]	{ECHO;
					}	/* [...[..]...] */



[aA]([uU]|[uU]h)			{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("aU");
					}	/* R001: au(h) */
[aA][eE]					{Silbenanzahl += 1;
					 printf("E");
					}	/* R002:  ae */
[aA]([iI]|[yY])				{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("aI");
					}	/* R003: ai oder ay */
\"[aA][uU]				{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("OY");
					}	/* R004: "au */
[aA]/{Buchstabenfolge}			{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("a:");
					}	/* R005: a vor einer Buchstabenfolge */
[aA]/({Trennzeichen})  			{if (Silbenanzahl == 0)
					   printf("a:");
					 else
					   printf("a");
					}	/* R006: a am Wortende */

[aA]$					{if (Silbenanzahl == 0)
					   printf("a:");
					 else
					   printf("a");
					}	/* R006: a am Wortende */
[aA]/(tsch)				{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("a:");
					}	/* R007: a in der Folge atsch */
[aA][hH]/(({Kons_buchst}){1,})		{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("a:");
					}	/* R008: ah */
[aA][aA]				{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("a:");
					}	/* R009: aa */
[aA]/{Kons_buchst}			{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("a:");
					}	/* R010: a vor einem Konsonant */	
[aA]/{Vokalbuchstabe}			{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("a:");
					}	/* R011: a vor Vokal ausser Diphtong */
[aA]/(({Kons_buchst}){2,})		{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("a");
					}	/* R012: a vor mehreren Konsonanten */


\"[aA]/({Trennzeichen})			{printf("E:");
					}	/* R013: "a am Wortende */

\"[aA]$					{printf("E:");
					}	/* R013: "a am Wortende */
(\"a|\"A)/{Kons_buchst}			{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("E:");
					}	/* R014: "a vor einem Konsonant */
\"[aA]/{Vokalbuchstabe}			{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("E:");
					}	/* R015: "a vor einem Vokal */
\"[aA]/{Buchstabenfolge}		{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("E:");
					}	/* R016: "a vor einer Buchstabenfolge */
\"[aA]/(({Kons_buchst}){2,})		{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("E");
					}	/* R017: "a vor mehreren Konsonanten */


^[bB]              			{printf("b");
					 Vokal = 0;
					}	/* R018: b am Wortanfang */
[ \t\n][bB]            			{Silbenanzahl = 0;
					 Vokal = 0;
					 printf("%cb",yytext[0]);
					}	/* R019: b am Wortanfang */
[bB]/({Vokalbuchstabe})			{printf("b");
					 Vokal = 0;
					}	/* R020: b vor Vokal */
([Bb]{1,2})/{Vokalbuchstabe}		{if (Vokal == 1)
					   {printf("[b]");
					   }	/* R021: Vokal bb Vokal */
					 else
					   {printf("b");
					   }	/* R022: Konsonant (b oder bb) Vokal */
					 Vokal = 0;
					}
[bB]{1,2}/[nl]				{printf("b");
					 Vokal = 0;
					}	/* R023: b vor n oder l */
[bB]{1,2}/({Trennzeichen})		{printf("p");
					 Vokal = 0;
					}	/* R024: b am Wortende */

[bB]{1,2}$				{printf("p");
					 Vokal = 0;
					}	/* R024: b am Wortende */
[bB]{1,2}/{Suffix}   			{printf("p");
					 Vokal = 0;
					}	/* R025: b vor einem Suffix */
[bB]{1,2}           			{printf("p");
					 Vokal = 0;
					}	/* R026: sonstige b's im Wortinneren */


[cC][hH]                           	{printf("x");
					 Vokal = 0;
					}	/* R027: ch */
[cC][kK]/{Vokalbuchstabe}		{if (Vokal == 1 )
					   {printf("[k]");
					    Vokal = 0;	
					   }	/* R028: Vokal ck Vokal */
					 else REJECT;
					}		
[cC][kK]				{printf("k");
					 Vokal = 0;
					}	/* R029: ck */
[cC]					{printf("k");
					 Vokal = 0;
					}	/* R030: sonst */	


^[dD]					{printf("d");
					 Vokal = 0;
					}	/* R031: d am Wortanfang */
[ \t\n][dD]            			{Silbenanzahl = 0;
					 Vokal = 0;
					 printf("%cd",yytext[0]);
					}	/* R032: d am Wortanfang */
[dD]/({Vokalbuchstabe})			{printf("d");
					 Vokal = 0;
					}	/* R033: d vor Vokal */
([dD]{1,2})/({Vokalbuchstabe})		{if (Vokal == 1)
					   {printf("[d]");
					    Vokal = 0;
					   }	/* R034: Vokal dd Vokal */
					 else
					   {printf("d");
					   }	/* R035: Konsonant (d oder dd) Vokal */
					Vokal = 0;
					}
[dD]{1,2}/[nl]			     	{printf("d");
					 Vokal = 0;
					}	/* R036: d vor n oder l */
[dD]{1,2}/({Trennzeichen})		{printf("t");
					 Vokal = 0;
					}	/* R037: d am Wortende */
[dD]{1,2}$				{printf("t");
					 Vokal = 0;
					}	/* R037: d am Wortende */
[dD][tT]	     			{printf("t");
					 Vokal = 0;
					}	/* R038: dt */
[dD]{1,2}/{Suffix}			{printf("t");
					 Vokal = 0;
					}	/* R039: d vor einem Suffix */
[dD]{1,2}           			{printf("t");
					 Vokal = 0;
					}	/* R040: sonstige d's im Wortinneren */
[dD]{1,2}[sS]/{Trennzeichen}		{printf("ts");
					 Vokal = 0;
					}	/* R041: ds oder dds am Wortende */
[dD]{1,2}[sS]$				{printf("ts");
					 Vokal = 0;
					}	/* R041: ds oder dds am Wortende */
[dD]{1,2}[sS]/t				{printf("ts");
					 Vokal = 0;	
					}	/* R042: ds oder dds vor t */


[eE][eE]				{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("e:");
					}	/* R043: ee */
[eE]/({Trennzeichen})			{if (Silbenanzahl == 0)
					   printf("e:");
					else
					   printf("@");
					}	/* R044: e am Wortende */
[eE]$					{if (Silbenanzahl == 0)
					   printf("e:");
					else
					   printf("@");
					}	/* R044: e am Wortende */
[eE]/{Buchstabenfolge}			{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("@");
					}	/* R045: e vor einer Buchstabenfolge */
[eE][rR]/({Trennzeichen})		{if (Silbenanzahl == 0)
					   printf("e:R");						
					 else
					   printf("@R");
					}	/* R046: er am Wortende */
[eE][rR]$				{if (Silbenanzahl == 0)
					   printf("e:R");						
					 else
					   printf("@R");
					}	/* R046: er am Wortende */
[eE][lL]/({Trennzeichen})		{printf("@l");
					}	/* R047: el am Wortende */
[eE][lL]$				{printf("@l");
					}	/* R047: el am Wortende */
[eE][nN]/({Trennzeichen})		{if (Silbenanzahl == 0)
					   printf("e:n");
					 else 					  
					   printf("@n");
					}	/* R048: en am Wortende */
[eE][nN]$				{if (Silbenanzahl == 0)
					   printf("e:n");
					 else 					  
					   printf("@n");
					}	/* R048: en am Wortende */
[eE][mM]/({Trennzeichen})		{if (Silbenanzahl == 0)
					   printf("e:m");				
					 else
					   printf("@m");
					}	/* R049: em am Wortende */
[eE][mM]$				{if (Silbenanzahl == 0)
					   printf("e:m");				
					 else
					   printf("@m");
					}	/* R049: em am Wortende */
[eE][sS]/({Trennzeichen})		{if (Silbenanzahl == 0)
					   printf("e:s");				
					 else
					   printf("@s");
					}	/* R050: es am Wortende */
[eE][sS]$				{if (Silbenanzahl == 0)
					   printf("e:s");				
					 else
					   printf("@s");
					}	/* R050: es am Wortende */
[eE]/{Kons_buchst}			{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("e:");
					}	/* R051: e vor einem Konsonant */
[eE][hH]/(({Kons_buchst}){1,})		{Silbenanzahl += 1;
					 Vokal = 1;   
					 printf("e:");	
					}	/* R052: eh */
[eE]/(({Kons_buchst}){2,})	 	{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("E");
					}	/* R053: e vor mehreren Konsonanten */
[eE][aA][uU]/({Trennzeichen})		{printf("o:");
					}	/* R054: eau am Wortende  */
[eE][aA][uU]$				{printf("o:");
					}	/* R054: eau am Wortende  */
[eE]([iI]|[iI][hH])			{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("aI");
					}	/* R055: ei(h) */
[eE][yY]				{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("aI");
					}	/* R056: ey */
[eE][uU]				{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("OY");
					}	/* R057: eu */
[eE]/{Vokalbuchstabe}			{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("@");
					}	/* R058: e vor Vokal ausser Diphtong */

[fF][fF]/{Vokalbuchstabe}		{if (Vokal == 1)
					   {printf("[f]");
					    Vokal = 0;
					   }	/* R059: Vokal ff Vokal */
					 else REJECT;
					}
[fF]{1,2}    				{printf("f");
					 Vokal = 0;
					}	/* R060: f oder ff */


[gG]{1,2}/({stimmloser_Konsonant}|d)	{printf("k");
					 Vokal = 0;
					}	/* R061: g vor stimmlosem Konsonant und d */
[ \t\n][gG]/({stimmloser_Konsonant}|d)	{Silbenanzahl = 0;
					 Vokal = 0;
					 printf("%ck",yytext[0]);
					}	/* R062: g vor stimml. Kons. und d am Wortanfang*/
[gG]/({Trennzeichen})			{printf("k");
					}	/* R063: g am Wortende */
[gG]$					{printf("k");
					}	/* R063: g am Wortende */
[gG]{1,2}/{Suffix}   			{printf("k");
					 Vokal = 0;
					}	/* R064: g vor einem Suffix */
^[gG]					{printf("g");
					 Vokal = 0;
					}	/* R065: g am Wortanfang */
[ \t\n][gG]					{Silbenanzahl = 0;
					 Vokal = 0;;
					 printf("%cg",yytext[0]);
					}	/* R066: g am Wortanfang */
[gG][gG]/{Vokalbuchstabe}		{if (Vokal == 1)
					   {printf("[g]");
					    Vokal = 0;
					   }	/* R067: Vokal gg Vokal */
					 else REJECT;
					}
[gG]{1,2}/({Vokalbuchstabe}|[nl]) 	{printf("g");
					 Vokal = 0;
					}	/* R068: g im Wortinneren vor Vokal, n oder l */
([iI][gG])/({Trennzeichen})		{Silbenanzahl += 1;
					 printf("Ix");
					}	/* R069: ig am Wortende */
([iI][gG])$				{Silbenanzahl += 1;
					 printf("Ix");
					}	/* R069: ig am Wortende */
([iI][gG])/(lich)				{Silbenanzahl += 1;
					 Vokal = 0; 
					 printf("Ik");
					}	/* R070: ig vor dem Suffix -lich */
^([iI][gG])				{Silbenanzahl += 1;
					 printf("Ig");
					}	/* R071: ig am Wortanfang */
[iI][gG]/{Kons_buchst}			{Silbenanzahl += 1;
					 Vokal = 0;
					 printf("Ix");
					}	/* R072: ig sonst */
[gG]{1,2}                               {printf("g");
					 Vokal = 0;
					}	/* g sonst SR 10.1.96 ,
                                                   wg. 'D"aubler-Gmelin'*/

^[hH]					{printf("h");
					 Vokal = 0;
					}	/* R073: h am Wortanfang */
[ \t\n][hH]	 				{Silbenanzahl = 0;
					 Vokal = 0;
					 printf("%ch",yytext[0]);
					}	/* R074: h am Wortanfang */
[hH]/{Vokalbuchstabe}			{if (Silbenanzahl == 0)
					   printf("h");
					 else
					   {if (Vokal == 1)
					    printf("h");
					    else REJECT;
					   }
					}	/* R075: Vokal h Vokal */
[hH]                     		{printf("");
					}	/* R076: sonst ist h stumm */
[hH]/{Suffix_mit_h}			{printf("h");
					 Vokal = 0;
					}	/* R077: h im Suffix */


[iI]([eE]|[eE][hH])			{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("i:");
					}	/* R078: ie */
[iI][hH]				{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("i:");
					}	/* R079: ih */
[iI]/({Trennzeichen})			{printf("i");
					}	/* R080: am Wortende */
[iI]$					{printf("i");
					}	/* R080: am Wortende */
[iI]/{Buchstabenfolge}			{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("i");
					}	/* R081: i vor einer Buchstabenfolge */
[iI]/({Kons_buchst}{Kons_buchst}+) 	{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("I");
					}	/* R082: i vor mehreren Konsonanten */
[iI]/{Vokalbuchstabe}			{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("i:");
					}	/* R083: i vor Vokal ausser Diphtong */


[jJ]{1,2}				{printf("j");
					 Vokal = 0;
					}	/* R084: j oder jj */


[kK][kK]/{Vokalbuchstabe}		{if (Vokal == 1)
					   {printf("[k]");
					    Vokal = 0;
					   }	/* R085: Vokal kk Vokal */
					 else REJECT;
					}
[kK]{1,2}				{printf("k");
					 Vokal = 0;
					}	/* R086: k oder kk */
[kK][qQ][uU]                   		{printf("kv");
					 Vokal = 0;
					}	/* R087: kqu */


[lL][lL]/{Vokalbuchstabe}		{if (Vokal == 1)
					   {printf("[l]");
					    Vokal = 0;
					   }	/* R088: Vokal ll Vokal */
					 else REJECT;
					}
[lL]{1,2} 				{printf("l");
					 Vokal = 0;
					}	/* R089: l oder ll */


[mM][mM]/{Vokalbuchstabe}		{if (Vokal == 1)
					   {printf("[m]");
					    Vokal = 0;
					   }	/* R090: Vokal mm Vokal */
					 else REJECT;
					}
[mM]{1,2} 				{printf("m");
					 Vokal = 0;
					}	/* R091: m oder mm */


[nN][nN]/{Vokalbuchstabe}		{if (Vokal == 1)
					   {printf("[n]");
					    Vokal = 0;
					   }	/* R092: Vokal nn Vokal */
					 else REJECT;
					}
[nN]{1,2}/([^gk])			{printf("n");
					 Vokal = 0;
					}	/* R093: n oder nn, ausser vor g und k */
[nN][gG]				{printf("N");
					 Vokal = 0;
					}	/* R094: n vor g */
[nN][kK]				{printf("Nk");
					 Vokal = 0;
					}	/* R095: n vor k */


(\"[oO]|[oO][eE])/({Trennzeichen})	{printf("2:");
					}	/* R096: am Wortende */
(\"[oO]$)|([oO][eE]$)			{printf("2:");
					}	/* R096: am Wortende */
(\"[oO]|[oO][eE])/{Buchstabenfolge}	{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("9");
					}	/* R097: vor einer Buchstabenfolge */
(\"[oO]|[oO][eE])/(({Kons_buchst}){2,})	{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("9");
					}	/* R098: vor mehreren Konsonanten */
(\"[oO]|[oO][eE])/({Kons_buchst})	{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("2:");
					}	/* R099: vor einem Konsonant */
[oO][eE]/(({Kons_buchst}){1,})		{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("2:");
					}	/* R100: vor einem oder mehreren Konsonanten */


[oO][iIyY]				{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("OY");
					}	/* R101: oi oder oy */
(([oO][oO])|([oO][hH])|([oO][oO][hH]))/(({Kons_buchst}){1,})	{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("o:");
					}	/* R102: oo, oh oder ooh */
[oO]/{Kons_buchst}			{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("o:");
					}	/* R103: o vor einem Konsonant */
[oO]/{Vokalbuchstabe}			{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("o:");
					}	/* R104: o vor Vokal ausser Diphtong */
[oO]/({Trennzeichen})			{if (Silbenanzahl == 0)
					   printf("o:");
					 else
					  printf("o");
					}	/* R105: o am Wortende */
[oO]$					{if (Silbenanzahl == 0)
					   printf("o:");
					 else
					  printf("o");
					}	/* R105: o am Wortende */
[oO]/{Buchstabenfolge}			{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("o");
					}	/* R106: vor einer Buchstabenfolge */
[oO]/(({Kons_buchst}){2,})		{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("O");
					}	/* R107: o vor mehreren Konsonanten */


[pP][pP]/{Vokalbuchstabe}		{if (Vokal == 1)
					   {printf("[p]");
					    Vokal = 0;
					   }	/* R108: Vokal pp Vokal */
					 else REJECT;
					}
[pP][fF]/{Vokalbuchstabe}		{if (Vokal == 1)
					   {printf("[pf]");
					    Vokal = 0;
					   }	/* R109: Vokal pf Vokal */
					 else REJECT;
					}
[pP]{1,2}				{printf("p");
					 Vokal = 0;
					}	/* R110: p oder pp */
[pP][hH]|[pP][pP][hH]			{printf("f");
					 Vokal = 0;
					}	/* R111: ph, pph */


[qQ][uU]				{printf("kv");
					 Vokal = 0;
					}	/* R112: qu */

[qQ]    				{printf("k");
					 Vokal = 0;
					}	/* q als k*/


[rR][rR]/{Vokalbuchstabe}		{if (Vokal == 1)
					   {printf("[R]");
					    Vokal = 0;
					   }	/* R113: Vokal rr Vokal */
					 else REJECT;
					}
[rR]{1,2}				{printf("R");
					 Vokal = 0;
					}	/* R114: r oder rr */
[rR]{1,2}[hH]				{printf("R");
					 Vokal = 0;
					}	/* R115: rh, rrh */


^[sS]/{Vokalbuchstabe}			{printf("z");
					 Vokal = 0;
					}	/* R116: stimmhaftes s am Wort-, Satzanfang*/
[ \t\n][sS]/{Vokalbuchstabe}		{Silbenanzahl = 0;
					 Vokal = 0;
					 printf("%cz",yytext[0]);
					}	/* R117: stimmhaftes ("weiches") s */
^([sS][cC][hH])				{printf("S");
					 Vokal = 0;
					}	/* R118: sch oder Sch am Wort-, Satzanfang*/
[ \t\n]([sS][cC][hH])			{printf("%cS",yytext[0]);
					 Vokal = 0;
					}	/* R119: sch oder Sch am Wortanfang */	
[sS][cC][hH]				{printf("S");
					 Vokal = 0;
					}	/* R120: sch im Wortinnern */
^[sS]/(b|c|f|g|k|l|m|n|(ph)|q|v|w|z)	{printf("s");
					 Vokal = 0;
					}	/* R121: am Wort-, Satzanfang */
[ \t\n][sS]/(b|c|f|g|k|l|m|n|(ph)|q|v|w|z)	{printf("%cs",yytext[0]);
					 Vokal = 0;
					}	/* R122: am Wortanfang */
^[sS]/(t|p)				{printf("S");
					 Vokal = 0;
					}	/* R123: sp oder st am Wortanfang */
[ \t\n][sS]/(t|p)				{printf("%cS",yytext[0]);
					 Vokal = 0;
					}	/* R124: sp oder st am Wortanfang */
s/([bcdfgjklmnpqrtvz]|(ph))		{printf("s");
					 Vokal = 0;
					}	/* R125: im Wortinneren */
[sS]/(haft|heit|schaft)			{printf("s");
					 Vokal = 0;
					}	/* R126: vor den Suffixen */

[sS]/({Trennzeichen})			{printf("s");
					}	/* R127: s am Wortende */
[sS]$					{printf("s");
					}	/* R127: s am Wortende */
[sS][sS]/{Vokalbuchstabe}		{if (Vokal == 1)
					   {printf("[s]");
					    Vokal = 0;
					   }	/* R128: Vokal ss Vokal */
					 else REJECT;
					}		
[sS][sS]|\"[sS]				{printf("s");
					 Vokal = 0;
					}	/* R129: stimmloses ("scharfes") s */
[sS]					{printf("z");
					 Vokal = 0;
					}	/* R130: sonstige s */


[tT][tT]/{Vokalbuchstabe}		{if (Vokal == 1)
					   {printf("[t]");
					    Vokal = 0;
					   }	/* R131: Vokal tt Vokal */
					 else REJECT;
					}	
[tT]{1,2}				{printf("t");
					 Vokal = 0;
					}	/* R132: t oder tt */
[tT]{1,2}[hH]				{printf("t");
					 Vokal = 0;
					}	/* R133: th  */
[tT][sSzZ]/{Vokalbuchstabe}		{if (Vokal == 1)
					   {printf("[ts]");
					    Vokal = 0;
					   }	/* R134: Vokal (ts oder tz) Vokal */
					 else REJECT;
					}
[tT][sSzZ]				{printf("ts");
					 Vokal = 0;
					}	/* R135: ts oder tz */
[tT][sS][cC][hH]/{Vokalbuchstabe}	{if (Vokal == 1)
					   {printf("[tS]");
					    Vokal = 0;
					   }	/* R136: Vokal tsch Vokal */
					 else REJECT;
					}
[tT][sS][cC][hH]			{printf("tS");
					 Vokal = 0;
					}	/* R137: tsch oder Tsch*/


(\"[uU]|[uU][eE])/({Trennzeichen})	{printf("y:");
					}	/* R138: am Wortende */
\"[uU]$|[uU][eE]$			{printf("y:");
					}	/* R138: am Wortende */
(\"[uU][hH]|[uU][eE][hH])/(({Kons_buchst})*)	{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("y:");
					}	/* R139: vor einem Konsonant */
(\"[uU]|[uU][eE])/(({Kons_buchst}){2,})	{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("Y");
					}	/* R140: vor mehreren Konsonanten */
(\"[uU]|[uU][eE])/({Kons_buchst})	{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("y");
					}	/* R141: vor einem Konsonant */


([uU][hH])/(({Kons_buchst}){1,})	{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("u:");
					}	/* R142: uh oder Uh */
[uU]/{Kons_buchst}			{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("u:");
					}	/* R143: vor einem Konsonant */
[uU]/{Vokalbuchstabe}			{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("u:");
					}	/* R144: vor Vokal ausser Diphtong */
[uU]/({Trennzeichen})			{printf("u");
					}	/* R145: am Wortende */
[uU]$					{printf("u");
					}	/* R145: am Wortende */
[uU]/{Buchstabenfolge}			{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("u");
					}	/* R146: vor einer Buchstabenfolge */
[uU]/(({Kons_buchst}){2,})		{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("U");
					}	/* R147: vor mehreren Konsonanten */


[vV]{1,2}				{printf("f");
					 Vokal = 0;
					}	/* R148: v oder vv */


[wW]{1,}				{printf("v");
					 Vokal = 0;
					}	/* R149: sonst */
[wW]/{Trennzeichen}			{printf("f");
					 Vokal = 0;
					}	/* R150: w am Wortende */
[wW]/{stimmloser_Konsonant}		{printf("f");
					 Vokal = 0;
					}	/* R151: w vor stimmlosem Konsonant */
[wW]/{Suffix}				{printf("f");
					 Vokal = 0;
					}	/* R152: w vor einem Suffix */


[xX]/{Vokalbuchstabe}                   {printf("[k]s");
                                         Vokal = 0;
                                        }       /* R153: x */

[xX]                                    {printf("ks");
                                         Vokal = 0;
                                        }       /* R153: x */


[yY]/{Kons_buchst}			{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("y:");
					}	/* R154: y vor einem Konsonant */
[yY]/{Vokalbuchstabe}			{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("y:");
					}	/* R155: y vor Vokal ausser Diphtong */
[yY]/({Trennzeichen})			{printf("y");
					}	/* R156: y am Wortende */
[yY]$					{printf("y");
					}	/* R156: y am Wortende */
[yY]/{Buchstabenfolge}			{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("y");
					}	/* R157: y vor einer Buchstabenfolge */
[yY]/(({Kons_buchst}){2,})		{Silbenanzahl += 1;
					 Vokal = 1;
					 printf("Y");
					}	/* R158: y vor mehreren Konsonanten */


[zZ][zZ]/{Vokalbuchstabe}		{if (Vokal == 1)
					   {printf("[ts]");
					    Vokal = 0;
					   }	/* R159: Vokal zz Vokal */
					 else REJECT;
					}
[zZ]{1,2}				{printf("ts");
					 Vokal = 0;
					}	/* R160: z oder zz */

.   					{ECHO;
					}

%%
main(argc, argv)
int argc;
char **argv;
{
 int i;

  ++argv; --argc; /* skip over program name */

  if(argc>0){
    for(i=0; i<argc; i++){
      yyin = fopen(argv[i],"r");
      if (yyin==NULL)
        fprintf(stderr,"could not open %s --- skipped.\n",argv[i]);
      else {
        yylex();
      }
    }
  } else {
    yyin=stdin;
    yylex();
  }     
}

 


